home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / logs / logbook / dxccmb.prg < prev    next >
Text File  |  1990-05-04  |  5KB  |  152 lines

  1. *:*********************************************************************
  2. *:
  3. *:        Program: DXCCMB.PRG
  4. *:
  5. *:         System: PC-HAM Logbook
  6. *:         Author: Joe Kasser G3ZCZ
  7. *:      Copyright (c) 1990, Joe Kasser
  8. *:  Last modified: 04/27/90     13:29
  9. *:
  10. *:      Called by: DXCCSB.PRG                    
  11. *:               : DXCC5B.PRG                    
  12. *:
  13. *:           Uses: &LOGBOOK.DBF   
  14. *:               : &DXCC          
  15. *:
  16. *:        Indexes: &LOGNDX
  17. *:
  18. *:      Documented 05/04/90 at 13:50                SNAP!  version 3.12f
  19. *:*********************************************************************
  20. *MBDXCC AUTOMATICALLY UPDATES DXCC RECORDS FROM LOG DATABASE
  21. * COPYRIGHT JOE KASSER G3ZCZ 1985
  22.  
  23. STORE 0 TO worked
  24. STORE 0 TO qsled
  25. both = 0
  26.  
  27. SELECT 1
  28. USE &logbook INDEX &logndx
  29.  
  30. SELECT 2
  31. USE &dxcc
  32.  
  33. DO WHILE .not. EOF()
  34.    ? px
  35.    IF dstate = 'Q'
  36.       * ALREADY IN DXCC RECORD, IGNORE REST'
  37.       STORE .F. TO qslflag
  38.       STORE qsled + 1 TO qsled
  39.    ELSE
  40.       STORE 0 TO workedflag
  41.       STORE .t. TO qslflag
  42.       * NOT WORKED YET, SO TRY LOG FOR UPDATE'
  43.       STORE TRIM(px) TO prefix
  44.       SELECT 1
  45.       FIND &prefix
  46.       IF (EOF() .or. BOF())
  47.          * NO FIND, TRY ALTERNATE PREFIX
  48.          SELECT 2
  49.          IF SUBSTR(px1,1,1) = ' '
  50.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  51.          ELSE
  52.             STORE TRIM(px1) TO prefix
  53.             SELECT 1
  54.             FIND &prefix
  55.             IF (EOF() .or. BOF())
  56.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  57.             ELSE
  58.                * FOUND SOMETHING FOR PX1  '
  59.                DO WHILE CALL = prefix .and. qslflag
  60.                   IF qslrx = 'R' .and. band = thisband
  61.                      *FOUND A QSL'
  62.                      STORE .F. TO qslflag
  63.                      STORE CALL TO CALL
  64.                      STORE DATE TO DATE
  65.                      STORE TIME TO TIME
  66.                      STORE mode TO mode
  67.                      STORE band TO band
  68.                      SELECT 2
  69.                      REPLACE dcall WITH CALL
  70.                      REPLACE ddate WITH DATE
  71.                      REPLACE dtime WITH TIME
  72.                      REPLACE dmode WITH mode
  73.                      REPLACE dband WITH band
  74.                      STORE qsled + 1 TO qsled
  75.                      REPLACE dstate WITH 'Q'
  76.                      SKIP -1
  77.                   ELSE
  78.                      IF workedflag = 0
  79.                         IF band = thisband
  80.                            STORE RECNO() TO workedflag
  81.                         ENDIF
  82.                      ENDIF
  83.                   ENDIF
  84.                   SKIP
  85.                ENDDO
  86.             ENDIF
  87.          ENDIF
  88.       ELSE
  89.          *FOUND SOMETHING FOR PX, see IF its qsled'
  90.          DO WHILE CALL = prefix .and. qslflag
  91.             IF qslrx = 'R'  .and. band =  thisband
  92.                STORE .F. TO qslflag
  93.                *FOUND A QSL'
  94.                STORE CALL TO CALL
  95.                STORE DATE TO DATE
  96.                STORE TIME TO TIME
  97.                STORE mode TO mode
  98.                STORE band TO band
  99.                SELECT 2
  100.                REPLACE dstate WITH 'Q'
  101.                STORE qsled + 1 TO qsled
  102.                REPLACE dcall WITH CALL
  103.                REPLACE ddate WITH DATE
  104.                REPLACE dtime WITH TIME
  105.                REPLACE dmode WITH mode
  106.                REPLACE dband WITH band
  107.                SKIP -1
  108.             ELSE
  109.                IF workedflag = 0
  110.                   IF band = thisband
  111.                      STORE RECNO() TO workedflag
  112.                   ENDIF
  113.                ENDIF
  114.             ENDIF
  115.             SKIP
  116.          ENDDO
  117.       ENDIF
  118.    ENDIF
  119.    SELECT 2
  120.    IF qslflag
  121.       IF workedflag = 0
  122.          * PREFIX WAS NOT WORKED EITHER
  123.       ELSE
  124.          SELECT 1
  125.          GOTO  workedflag
  126.          STORE worked + 1 TO worked
  127.          STORE CALL TO CALL
  128.          STORE DATE TO DATE
  129.          STORE TIME TO TIME
  130.          STORE mode TO mode
  131.          STORE band TO band
  132.          SELECT 2
  133.          REPLACE dcall WITH CALL
  134.          REPLACE ddate WITH DATE
  135.          REPLACE dtime WITH TIME
  136.          REPLACE dmode WITH mode
  137.          REPLACE dband WITH band
  138.          REPLACE dstate WITH 'W'
  139.       ENDIF
  140.    ENDIF
  141.    both = worked + qsled
  142.    ?? dcall, dband, dstate, qsled, worked, both
  143.    SKIP
  144. ENDDO
  145. SELECT 2
  146. USE
  147. SELECT 1
  148. USE
  149. RELEASE worked,workedflag,qsled,prefix,qslflag,CALL,DATE,TIME,mode,band,both
  150. RETURN
  151. *: EOF: DXCCMB.PRG
  152.